ZGlmZiAtLWdpdCBhL2FyY2gvaTM4Ni9jcHUvY3B1LmMgYi9hcmNoL2kzODYvY3B1L2NwdS5jCmluZGV4IGU5NjM4MGEuLjIzMzljZDQgMTAwNjQ0Ci0tLSBhL2FyY2gvaTM4Ni9jcHUvY3B1LmMKKysrIGIvYXJjaC9pMzg2L2NwdS9jcHUuYwpAQCAtODcsNyArODcsNyBAQAogfQogCiAKLWludCBjcHVfaW5pdF9mKHZvaWQpCitpbnQgeDg2X2NwdV9pbml0X2Yodm9pZCkKIHsKIAljb25zdCB1MzIgZW1fcnN0ID0gflg4Nl9DUjBfRU07CiAJY29uc3QgdTMyIG1wX25lX3NldCA9IFg4Nl9DUjBfTVAgfCBYODZfQ1IwX05FOwpAQCAtMTAyLDE1ICsxMDIsMjUgQEAKIAogCXJldHVybiAwOwogfQoraW50IGNwdV9pbml0X2Yodm9pZCkgX19hdHRyaWJ1dGVfXygod2VhaywgYWxpYXMoIng4Nl9jcHVfaW5pdF9mIikpKTsKIAotaW50IGNwdV9pbml0X3Iodm9pZCkKK2ludCB4ODZfY3B1X2luaXRfcih2b2lkKQogeworCWNvbnN0IHUzMiBud19jZF9yc3QgPSB+KFg4Nl9DUjBfTlcgfCBYODZfQ1IwX0NEKTsKKworCS8qIHR1cm4gb24gdGhlIGNhY2hlIGFuZCBkaXNhYmxlIHdyaXRlIHRocm91Z2ggKi8KKwlhc20oIm1vdmwJJSVjcjAsICUlZWF4XG4iCisJICAgICJhbmRsCSUwLCAlJWVheFxuIgorCSAgICAibW92bAklJWVheCwgJSVjcjBcbiIKKwkgICAgIndiaW52ZFxuIiA6IDogImkiIChud19jZF9yc3QpIDogImVheCIpOworCiAJcmVsb2FkX2dkdCgpOwogCiAJLyogSW5pdGlhbGl6ZSBjb3JlIGludGVycnVwdCBhbmQgZXhjZXB0aW9uIGZ1bmN0aW9uYWxpdHkgb2YgQ1BVICovCiAJY3B1X2luaXRfaW50ZXJydXB0cyAoKTsKIAlyZXR1cm4gMDsKIH0KK2ludCBjcHVfaW5pdF9yKHZvaWQpIF9fYXR0cmlidXRlX18oKHdlYWssIGFsaWFzKCJ4ODZfY3B1X2luaXRfciIpKSk7CiAKIGludCBkb19yZXNldChjbWRfdGJsX3QgKmNtZHRwLCBpbnQgZmxhZywgaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBhcmd2W10pCiB7CmRpZmYgLS1naXQgYS9hcmNoL2kzODYvY3B1L3NjNTIwL3NjNTIwLmMgYi9hcmNoL2kzODYvY3B1L3NjNTIwL3NjNTIwLmMKaW5kZXggMjEwMzdkMi4uYjk5NDA4YyAxMDA2NDQKLS0tIGEvYXJjaC9pMzg2L2NwdS9zYzUyMC9zYzUyMC5jCisrKyBiL2FyY2gvaTM4Ni9jcHUvc2M1MjAvc2M1MjAuYwpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiAoQykgQ29weXJpZ2h0IDIwMDIKLSAqIERhbmllbCBFbmdzdHL2bSwgT21pY3JvbiBDZXRpIEFCIDxkYW5pZWxAb21pY3Jvbi5zZT4uCisgKiBEYW5pZWwgRW5nc3Ry77+9bSwgT21pY3JvbiBDZXRpIEFCIDxkYW5pZWxAb21pY3Jvbi5zZT4uCiAgKgogICogU2VlIGZpbGUgQ1JFRElUUyBmb3IgbGlzdCBvZiBwZW9wbGUgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMKICAqIHByb2plY3QuCkBAIC00MCwxMCArNDAsOCBAQAogCiB2b2xhdGlsZSBzYzUyMF9tbWNyX3QgKnNjNTIwX21tY3IgPSAoc2M1MjBfbW1jcl90ICopMHhmZmZlZjAwMDsKIAotdm9pZCBpbml0X3NjNTIwKHZvaWQpCitpbnQgY3B1X2luaXRfZih2b2lkKQogewotCWNvbnN0IHUzMiBud19jZF9yc3QgPSB+KFg4Nl9DUjBfTlcgfCBYODZfQ1IwX0NEKTsKLQogCS8qCiAJICogU2V0IHRoZSBVQVJUeENUTCByZWdpc3RlciBhdCBpdCdzIHNsb3dlciwKIAkgKiBiYXVkIGNsb2NrIGdpdmluZyB1cyBhIDEuODQzMiBNSHogcmVmZXJlbmNlCkBAIC04NSwxMCArODMsNyBAQAogCS8qIHR1cm4gb24gdGhlIFNEUkFNIHdyaXRlIGJ1ZmZlciAqLwogCXdyaXRlYigweDExLCAmc2M1MjBfbW1jci0+ZGJjdGwpOwogCi0JLyogdHVybiBvbiB0aGUgY2FjaGUgYW5kIGRpc2FibGUgd3JpdGUgdGhyb3VnaCAqLwotCWFzbSgibW92bAklJWNyMCwgJSVlYXhcbiIKLQkgICAgImFuZGwJJTAsICUlZWF4XG4iCi0JICAgICJtb3ZsCSUlZWF4LCAlJWNyMFxuIiAgOiA6ICJpIiAobndfY2RfcnN0KSA6ICJlYXgiKTsKKwlyZXR1cm4geDg2X2NwdV9pbml0X2YoKTsKIH0KIAogdW5zaWduZWQgbG9uZyBpbml0X3NjNTIwX2RyYW0odm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvaTM4Ni9pbmNsdWRlL2FzbS91LWJvb3QtaTM4Ni5oIGIvYXJjaC9pMzg2L2luY2x1ZGUvYXNtL3UtYm9vdC1pMzg2LmgKaW5kZXggY2UwOTdhMy4uODBkYjUyZiAxMDA2NDQKLS0tIGEvYXJjaC9pMzg2L2luY2x1ZGUvYXNtL3UtYm9vdC1pMzg2LmgKKysrIGIvYXJjaC9pMzg2L2luY2x1ZGUvYXNtL3UtYm9vdC1pMzg2LmgKQEAgLTI1LDcgKzI1LDkgQEAKICNkZWZpbmUgX1VfQk9PVF9JMzg2X0hfCTEKIAogLyogY3B1Ly4uLi9jcHUuYyAqLworaW50IHg4Nl9jcHVfaW5pdF9yKHZvaWQpOwogaW50IGNwdV9pbml0X3Iodm9pZCk7CitpbnQgeDg2X2NwdV9pbml0X2Yodm9pZCk7CiBpbnQgY3B1X2luaXRfZih2b2lkKTsKIAogLyogY3B1Ly4uLi90aW1lci5jICovCmRpZmYgLS1naXQgYS9ib2FyZC9lTkVUL2VORVQuYyBiL2JvYXJkL2VORVQvZU5FVC5jCmluZGV4IDdmMGUyNTcuLjMwZDg3NTAgMTAwNjQ0Ci0tLSBhL2JvYXJkL2VORVQvZU5FVC5jCisrKyBiL2JvYXJkL2VORVQvZU5FVC5jCkBAIC00OCwzMyArNDgsMTEgQEAKIHN0YXRpYyB2b2lkIGVuZXRfdGltZXJfaXNyKHZvaWQpOwogc3RhdGljIHZvaWQgZW5ldF90b2dnbGVfcnVuX2xlZCh2b2lkKTsKIAotdm9pZCBpbml0X3NjNTIwX2VuZXQgKHZvaWQpCi17Ci0JLyogU2V0IENQVSBTcGVlZCB0byAxMDBNSHogKi8KLQl3cml0ZWIoMHgwMSwgJnNjNTIwX21tY3ItPmNwdWN0bCk7Ci0KLQkvKiB3YWl0IGF0IGxlYXN0IG9uZSBtaWxsaXNlY29uZCAqLwotCWFzbSgibW92bAkkMHgyMDAwLCUlZWN4XG4iCi0JICAgICIwOglwdXNobCAlJWVjeFxuIgotCSAgICAicG9wbAklJWVjeFxuIgotCSAgICAibG9vcCAwYlxuIjogOiA6ICJlY3giKTsKLQotCS8qIHR1cm4gb24gdGhlIFNEUkFNIHdyaXRlIGJ1ZmZlciAqLwotCXdyaXRlYigweDExLCAmc2M1MjBfbW1jci0+ZGJjdGwpOwotCi0JLyogdHVybiBvbiB0aGUgY2FjaGUgYW5kIGRpc2FibGUgd3JpdGUgdGhyb3VnaCAqLwotCWFzbSgibW92bAklJWNyMCwgJSVlYXhcbiIKLQkgICAgImFuZGwJJDB4OWZmZmZmZmYsICUlZWF4XG4iCi0JICAgICJtb3ZsCSUlZWF4LCAlJWNyMFxuIiAgOiA6IDogImVheCIpOwotfQotCiAvKgogICogTWlzY2VsbGFuZW91cyBwbGF0Zm9ybSBkZXBlbmRlbnQgaW5pdGlhbGl6YXRpb25zCiAgKi8KIGludCBib2FyZF9lYXJseV9pbml0X2Yodm9pZCkKIHsKLQlpbml0X3NjNTIwX2VuZXQoKTsKLQogCXdyaXRlYigweDAxLCAmc2M1MjBfbW1jci0+Z3Bjc3J0KTsJCS8qIEdQIENoaXAgU2VsZWN0IFJlY292ZXJ5IFRpbWUgKi8KIAl3cml0ZWIoMHgwNywgJnNjNTIwX21tY3ItPmdwY3Nwdyk7CQkvKiBHUCBDaGlwIFNlbGVjdCBQdWxzZSBXaWR0aCAqLwogCXdyaXRlYigweDAwLCAmc2M1MjBfbW1jci0+Z3Bjc29mZik7CQkvKiBHUCBDaGlwIFNlbGVjdCBPZmZzZXQgKi8K